<?php

/**
 * This is the model class for table "{{service}}".
 *
 * The followings are the available columns in table '{{service}}':
 * @property integer $id
 * @property string $type
 * @property string $description
 * @property string $price
 * @property string $duration
 */
class Service extends CActiveRecord
{
        /**
         * Returns the static model of the specified AR class.
         * @param string $className active record class name.
         * @return Service the static model class
         */
        public static function model($className=__CLASS__)
        {
                return parent::model($className);
        }

        /**
         * @return string the associated database table name
         */
        public function tableName()
        {
                return '{{service}}';
        }

        /**
         * @return array validation rules for model attributes.
         */
        public function rules()
        {
                // NOTE: you should only define rules for those attributes that
                // will receive user inputs.
                return array(
                        array('type, description, price, duration', 'required'),
                        array('type, description, duration', 'length', 'max'=>45),
                        array('price', 'length', 'max'=>9),
                        // The following rule is used by search().
                        // Please remove those attributes that should not be searched.
                        array('id, type, description, price, duration', 'safe', 'on'=>'search'),
                );
        }

        /**
         * @return array relational rules.
         */
        public function relations()
        {
                // NOTE: you may need to adjust the relation name and the related
                // class name for the relations automatically generated below.
                return array(
                'customer' => array(self::BELONGS_TO, 'Customer', 'id'),
                );
        }

        /**
         * @return array customized attribute labels (name=>label)
         */
        public function attributeLabels()
        {
                return array(
                        'type' => 'Service Type',
                        'description' => 'Description',
                        'price' => 'Price',
                        'duration' => 'Duration',
                );
        }

        /**
         * Retrieves a list of models based on the current search/filter conditions.
         * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
         */
        public function search()
        {
                // Warning: Please modify the following code to remove attributes that
                // should not be searched.

                $criteria=new CDbCriteria;

                $criteria->compare('id',$this->id);
                $criteria->compare('type',$this->type,true);
                $criteria->compare('description',$this->description,true);
                $criteria->compare('price',$this->price,true);
                $criteria->compare('duration',$this->duration,true);

                return new CActiveDataProvider($this, array(
                        'criteria'=>$criteria,
                ));
        }
}